package cc.fs.study.video;

/**
 * 使用 view_videoview布局文件
 * 视频播放器
 */
public class LiveneeqPlayer {
//    /**
//     * 可能会剪裁,保持原视频的大小，显示在中心,当原视频的大小超过view的大小超过部分裁剪处理
//     */
//    public static final String SCALETYPE_FITPARENT = "fitParent";
//    /**
//     * 可能会剪裁,等比例放大视频，直到填满View为止,超过View的部分作裁剪处理
//     */
//    public static final String SCALETYPE_FILLPARENT = "fillParent";
//    /**
//     * 将视频的内容完整居中显示，如果视频大于view,则按比例缩视频直到完全显示在view中
//     */
//    public static final String SCALETYPE_WRAPCONTENT = "wrapContent";
//    /**
//     * 不剪裁,非等比例拉伸画面填满整个View
//     */
//    public static final String SCALETYPE_FITXY = "fitXY";
//    /**
//     * 不剪裁,非等比例拉伸画面到16:9,并完全显示在View中
//     */
//    public static final String SCALETYPE_16_9 = "16:9";
//    /**
//     * 不剪裁,非等比例拉伸画面到4:3,并完全显示在View中
//     */
//    public static final String SCALETYPE_4_3 = "4:3";
//
//    private static final int MESSAGE_SHOW_PROGRESS = 1;//显示进度
//    private static final int MESSAGE_FADE_OUT = 2; //控制框消失
//    private static final int MESSAGE_SEEK_NEW_POSITION = 3;//滑动到新地址
//    private static final int MESSAGE_HIDE_CENTER_BOX = 4;//隐藏中间
//    private static final int MESSAGE_RESTART_PLAY = 5;//重播
//    private static final int MESSAGE_ERROR = 6;//播放出错
//    private final Activity activity;
//    private AudioManager audioManager;
//    private int mMaxVolume;
//    private String url;
//    //    private Query $;
//    private int STATUS_ERROR = -1;//播放错误
//    private int STATUS_IDLE = 0;
//    private int STATUS_LOADING = 1;//正在加载
//    private int STATUS_PLAYING = 2;//正在播放
//    private int STATUS_PAUSE = 3;//停止播放
//    private int STATUS_COMPLETED = 4;//播放完成
//    private long pauseTime;
//    private int status = STATUS_IDLE;
//    private boolean isLive = false;//是否为直播
//    private OrientationEventListener orientationEventListener;
//    private int initHeight;
//    private int defaultTimeout = 5000;
//    private int screenWidthPixels;
//
//    //view
//    //顶部栏
//    private LinearLayout topLayout;
//    private ImageView backBtn;
//    private TextView titleTV;
//
//    //底部栏
//    private RelativeLayout bottomLayout;
//    private ImageView playBtn;
//    private TextView cTimeTV;
//    private TextView eTimeTV;
//    private ImageView fullBtn;
//    private SeekBar seekBar;
//
//    //status Layout
//    private TextView statusTV;
//
//    //volume
//    private LinearLayout volumeLayout;
//    private ImageView volumeIV;
//    private TextView volumeTV;
//
//    //brightnessLayout
//    private LinearLayout brightnessLayout;
//    private ImageView brightnessIV;
//    private TextView brightnessTV;
//
//    //fastForwardLayout
//    private LinearLayout fastForwardLayout;
//    private TextView fastForwardTV;
//    private TextView fTargetTV;
//    private TextView fallTV;
//
//    //load
//    private ProgressBar progressBar;
//
//    //root
//    private RelativeLayout rootView;
//    private IjkVideoView videoView;
//    private PlayerListener playerListener = null;
//
//    private boolean isShowing;
//    private boolean isPortrait;
//    private float brightness = -1;
//    private int volume = -1;
//    private long newPosition = -1;
//    private long defaultRetryTime = 3000;
//
//    //是否加载完ijkplayer库
//    private boolean isLoadLib;
//    //是否完成播放
//    private boolean isComplete = false;
//    //当前播放位置
//    private int currentPosition;
//    //ui
//    private UIHandler uiHandler;
//
//    /**
//     * 初始化数据
//     */
//    public LiveneeqPlayer(final Activity activity, PlayerListener _playerListener) {
//        try {
//            IjkMediaPlayer.loadLibrariesOnce(null);
//            IjkMediaPlayer.native_profileBegin("libijkplayer.so");
//            isLoadLib = true;
//            isComplete = false;
//        } catch (Throwable e) {
//            Log.e("LiveneeqPlayer", "loadLibraries error", e);
//        }
//        this.activity = activity;
//        this.playerListener = _playerListener;
//
//        setUpView();
//        setUpEvent();
//        showInit();
//
//        if (!isLoadLib) {
//            showStatus("暂不支持");
//        }
//    }
//
//    private void setUpView() {
//        //init view
//        videoView = (IjkVideoView) activity.findViewById(R.id.video_view);
//        topLayout = (LinearLayout) activity.findViewById(R.id.topLayout);
//        backBtn = (ImageView) activity.findViewById(R.id.backBtn);
//        titleTV = (TextView) activity.findViewById(R.id.titleTV);
//
//        bottomLayout = (RelativeLayout) activity.findViewById(R.id.bottomLayout);
//        playBtn = (ImageView) activity.findViewById(R.id.playBtn);
//        cTimeTV = (TextView) activity.findViewById(R.id.cTimeTV);
//        eTimeTV = (TextView) activity.findViewById(R.id.eTimeTV);
//        fullBtn = (ImageView) activity.findViewById(R.id.fullBtn);
//        seekBar = (SeekBar) activity.findViewById(R.id.seekBar);
//
//        statusTV = (TextView) activity.findViewById(R.id.statusTV);
//
//        volumeLayout = (LinearLayout) activity.findViewById(R.id.volumeLayout);
//        volumeIV = (ImageView) activity.findViewById(R.id.volumeIV);
//        volumeTV = (TextView) activity.findViewById(R.id.volumeTV);
//
//        brightnessLayout = (LinearLayout) activity.findViewById(R.id.brightnessLayout);
//        brightnessIV = (ImageView) activity.findViewById(R.id.brightnessIV);
//        brightnessTV = (TextView) activity.findViewById(R.id.brightnessTV);
//
//        fastForwardLayout = (LinearLayout) activity.findViewById(R.id.fastForwardLayout);
//        fastForwardTV = (TextView) activity.findViewById(R.id.fastForwardTV);
//        fTargetTV = (TextView) activity.findViewById(R.id.fTargetTV);
//        fallTV = (TextView) activity.findViewById(R.id.fallTV);
//
//        progressBar = (ProgressBar) activity.findViewById(R.id.progressBar);
//        rootView = (RelativeLayout) activity.findViewById(R.id.appVideoBox);
//
//        audioManager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
//        mMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//
//        //handler
//        uiHandler = new UIHandler(new WeakReference<LiveneeqPlayer>(this));
//
//        //手势监听
//        final GestureDetector gestureDetector = new GestureDetector(activity, new PlayerGestureListener());
//        rootView.setClickable(true);
//        rootView.setOnTouchListener(new View.OnTouchListener() {
//            @Override
//            public boolean onTouch(View view, MotionEvent motionEvent) {
//                //监听点击
//                if (gestureDetector.onTouchEvent(motionEvent))
//                    return true;
//
//                // 处理手势结束
//                switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
//                    case MotionEvent.ACTION_UP:
//                        endGesture();
//                        break;
//                }
//
//                return false;
//            }
//        });
//
//        //是否是竖屏
//        isPortrait = getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
//        //根据当前屏幕的宽设置高度
//        screenWidthPixels = activity.getResources().getDisplayMetrics().widthPixels;
//        int videoHeight = (int) (screenWidthPixels / 16.0f * 9.0f);
//        setViewSize(rootView, false, videoHeight, false);
//        //原始高度
//        initHeight = rootView.getLayoutParams().height;
//    }
//
//    private void setUpEvent() {
//        videoView.setOnCompletionListener(new IMediaPlayer.OnCompletionListener() {
//            @Override
//            public void onCompletion(IMediaPlayer mp) {
//                //播放完成
//                isComplete = true;
//                statusChange(STATUS_COMPLETED);
//                if (playerListener != null) {
//                    playerListener.onComplete();
//                }
//            }
//        });
//        videoView.setOnErrorListener(new IMediaPlayer.OnErrorListener() {
//            @Override
//            public boolean onError(IMediaPlayer mp, int what, int extra) {
//                //播放出现错误
//                statusChange(STATUS_ERROR);
//                if (playerListener != null) {
//                    playerListener.onError(what, extra);
//                }
//                return true;
//            }
//        });
//        videoView.setOnInfoListener(new IMediaPlayer.OnInfoListener() {
//            @Override
//            public boolean onInfo(IMediaPlayer mp, int what, int extra) {
//                //播放状态
//                switch (what) {
//                    case IMediaPlayer.MEDIA_INFO_BUFFERING_START:
//                        statusChange(STATUS_LOADING);
//                        break;
//                    case IMediaPlayer.MEDIA_INFO_BUFFERING_END:
//                        statusChange(STATUS_PLAYING);
//                        break;
//                    case IMediaPlayer.MEDIA_INFO_NETWORK_BANDWIDTH:
//                        //显示 下载速度
////                        Toaster.show("download rate:" + extra);
//                        break;
//                    case IMediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
//                        statusChange(STATUS_PLAYING);
//                        break;
//                }
//                if (playerListener != null) {
//                    playerListener.onInfo(what, extra);
//                }
//                return false;
//            }
//        });
//
//        seekBar.setMax(1000);
//        seekBar.setOnSeekBarChangeListener(mSeekListener);
//        playBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                //正在加载无法操作
//                if(progressBar.getVisibility() == View.VISIBLE){
//                    return;
//                }
//                //点击播放和暂停
//                doPauseResume();
//                show(defaultTimeout);
//            }
//        });
//        fullBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                //点击全屏
//                toggleFullScreen();
//            }
//        });
//        backBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                //点击后退
//                if (!isPortrait) {
//                    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//                } else {
//                    activity.finish();
//                }
//            }
//        });
//
//        /**方向传感器 用作以后横屏的时候切换全屏及方向*/
//        orientationEventListener = new OrientationEventListener(activity) {
//            @Override
//            public void onOrientationChanged(int orientation) {
//                if (orientation >= 0 && orientation <= 30 || orientation >= 330 || (orientation >= 150 && orientation <= 210)) {
//                    //竖屏
//                    if (isPortrait) {
//                        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
//                        orientationEventListener.disable();
//                    }
//                } else if ((orientation >= 90 && orientation <= 120) || (orientation >= 240 && orientation <= 300)) {
//                    if (!isPortrait) {
//                        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
//                        orientationEventListener.disable();
//                    }
//                }
//            }
//        };
//
//        statusTV.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                statusTV.setVisibility(View.GONE);
//                play(url);
//            }
//        });
//    }
//
//    /**
//     * 进度条
//     */
//    private long duration;
//    private boolean instantSeeking;
//    private boolean isDragging;
//    private final SeekBar.OnSeekBarChangeListener mSeekListener = new SeekBar.OnSeekBarChangeListener() {
//        @Override
//        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//            if (!fromUser)
//                return;
//            statusTV.setVisibility(View.GONE);//移动时隐藏掉状态image
//            int newPosition = (int) ((duration * progress * 1.0) / 1000);
//            String time = generateTime(newPosition);
//            if (instantSeeking) {
//                videoView.seekTo(newPosition);
//            }
//            cTimeTV.setText(time);
//        }
//
//        @Override
//        public void onStartTrackingTouch(SeekBar seekBar) {
//            isDragging = true;
//            show(3600000);
//            uiHandler.removeMessages(MESSAGE_SHOW_PROGRESS);
//            if (instantSeeking) {
//                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                    audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, 0);
//                } else {
//                    audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);
//                }
//            }
//        }
//
//        @Override
//        public void onStopTrackingTouch(SeekBar seekBar) {
//            if (!instantSeeking) {
//                videoView.seekTo((int) ((duration * seekBar.getProgress() * 1.0) / 1000));
//            }
//            show(defaultTimeout);
//            uiHandler.removeMessages(MESSAGE_SHOW_PROGRESS);
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_UNMUTE, 0);
//            } else {
//                //静音
//                audioManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
//            }
//            isDragging = false;
//            uiHandler.sendEmptyMessageDelayed(MESSAGE_SHOW_PROGRESS, 1000);
//        }
//    };
//
//    public void setTitle(CharSequence title) {
//        titleTV.setText(title);
//    }
//
//    /**
//     * 手势结束
//     */
//    private void endGesture() {
//        volume = -1;
//        brightness = -1f;
//        if (newPosition >= 0) {
//            //清除旧的消息发送新的消息
//            uiHandler.removeMessages(MESSAGE_SEEK_NEW_POSITION);
//            uiHandler.sendEmptyMessage(MESSAGE_SEEK_NEW_POSITION);
//        }
//        uiHandler.removeMessages(MESSAGE_HIDE_CENTER_BOX);
//        uiHandler.sendEmptyMessageDelayed(MESSAGE_HIDE_CENTER_BOX, 500);
//
//    }
//
//    /**
//     * 处理不同的播放状态
//     */
//    private void statusChange(int newStatus) {
//        status = newStatus;
//        if (!isLive && newStatus == STATUS_COMPLETED) {
//            //非直播且播放完成
//            showControlBar();
//            updatePausePlay();
//            setProgress();
//            uiHandler.removeMessages(MESSAGE_SHOW_PROGRESS);
//        } else if (newStatus == STATUS_ERROR) {
//            showLoading();
//            if (defaultRetryTime > 0) {
//                uiHandler.sendEmptyMessageDelayed(MESSAGE_ERROR, defaultRetryTime);
//            }
////            uiHandler.removeMessages(MESSAGE_SHOW_PROGRESS);
//        } else if (newStatus == STATUS_LOADING) {
//            //正在加载
//            showLoading();
//            progressBar.setVisibility(View.VISIBLE);
//        } else if (newStatus == STATUS_PLAYING) {
//            //正在播放
//            showPlaying();
//        }
//    }
//
//    //显示初始状态
//    private void showInit() {
//        isShowing = true;
//        topLayout.setVisibility(View.VISIBLE);
//        progressBar.setVisibility(View.GONE);
//        statusTV.setVisibility(View.GONE);
//        showBottomControl(true);
//    }
//
//    //正在加载状态
//    private void showLoading() {
//        isShowing = true;
//        topLayout.setVisibility(View.VISIBLE);
//        progressBar.setVisibility(View.VISIBLE);
//        statusTV.setVisibility(View.GONE);
//        showBottomControl(true);
//    }
//
//    //播放状态
//    private void showPlaying() {
//        isShowing = false;
//        topLayout.setVisibility(View.GONE);
//        progressBar.setVisibility(View.GONE);
//        statusTV.setVisibility(View.GONE);
//        showBottomControl(false);
//    }
//
//    //显示headerView和bottomView
//    private void showControlBar() {
//        isShowing = true;
//        topLayout.setVisibility(View.VISIBLE);
//        bottomLayout.setVisibility(View.VISIBLE);
//    }
//
//    //显示底部控制
//    private void showBottomControl(boolean show) {
//        bottomLayout.setVisibility(show ? View.VISIBLE : View.GONE);
//        if (isLive) {
//            seekBar.setMax(100);
//            seekBar.setProgress(100);
//            //截取触摸事件
//            seekBar.setOnTouchListener(new View.OnTouchListener() {
//                @Override
//                public boolean onTouch(View v, MotionEvent event) {
//                    return true;
//                }
//            });
//        }
//    }
//
//
//    //屏幕方向改变 - 必须在activity中监听
//    public void onConfigurationChanged(final Configuration newConfig) {
//        isPortrait = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT;
//        doOnConfigurationChanged(isPortrait);
//    }
//
//    //处理屏幕方向改变
//    private void doOnConfigurationChanged(final boolean portrait) {
//        if (videoView != null) {
//            uiHandler.post(new Runnable() {
//                @Override
//                public void run() {
//                    //ui处理
//                    fullScreen(!portrait);
//                    //修改appVideoBox高度实现修改屏幕
//                    if (portrait) {
//                        setViewSize(rootView, false, initHeight, false);
//                    } else {
//                        int heightPixels = activity.getResources().getDisplayMetrics().heightPixels;
//                        int widthPixels = activity.getResources().getDisplayMetrics().widthPixels;
//                        setViewSize(rootView, false, Math.min(heightPixels, widthPixels), false);
//                    }
//                    updateFullScreenIcon();
//                }
//            });
//            orientationEventListener.enable();
//        }
//    }
//
//    //全屏
//    private void fullScreen(boolean fullScreen) {
//        if (activity instanceof AppCompatActivity) {
//            ActionBar supportActionBar = ((AppCompatActivity) activity).getSupportActionBar();
//            if (supportActionBar != null) {
//                if (fullScreen) {
//                    supportActionBar.hide();
//                } else {
//                    supportActionBar.show();
//                }
//            }
//        }
//
//        //配置全屏window属性
//        if (activity != null) {
//            WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
//            if (fullScreen) {
//                attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
//                activity.getWindow().setAttributes(attrs);
//                activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
//            } else {
//                attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
//                activity.getWindow().setAttributes(attrs);
//                activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
//            }
//        }
//    }
//
//    private void showStatus(String statusText) {
//        statusTV.setVisibility(View.VISIBLE);
//        statusTV.setText(statusText);
//    }
//
//    public void play(String url) {
//        this.url = url;
//        if (isLoadLib) {
//            progressBar.setVisibility(View.VISIBLE);
//            videoView.setVideoPath(url);
//            videoView.start();
//            isComplete = false;
//        }
//    }
//
//    //获取格式化时间
//    private String generateTime(long time) {
//        int totalSeconds = (int) (time / 1000);
//        int seconds = totalSeconds % 60;
//        int minutes = (totalSeconds / 60) % 60;
//        int hours = totalSeconds / 3600;
//        return hours > 0 ? String.format("%02d:%02d:%02d", hours, minutes, seconds) : String.format("%02d:%02d", minutes, seconds);
//    }
//
//    private int getScreenOrientation() {
//        int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
//        DisplayMetrics dm = new DisplayMetrics();
//        activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
//        int width = dm.widthPixels;
//        int height = dm.heightPixels;
//        int orientation;
//        // if the device's natural orientation is portrait:
//        if ((rotation == Surface.ROTATION_0
//                || rotation == Surface.ROTATION_180) && height > width ||
//                (rotation == Surface.ROTATION_90
//                        || rotation == Surface.ROTATION_270) && width > height) {
//            switch (rotation) {
//                case Surface.ROTATION_0:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
//                    break;
//                case Surface.ROTATION_90:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
//                    break;
//                case Surface.ROTATION_180:
//                    orientation =
//                            ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
//                    break;
//                case Surface.ROTATION_270:
//                    orientation =
//                            ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
//                    break;
//                default:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
//                    break;
//            }
//        }
//        // if the device's natural orientation is landscape or if the device
//        // is square:
//        else {
//            switch (rotation) {
//                case Surface.ROTATION_0:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
//                    break;
//                case Surface.ROTATION_90:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
//                    break;
//                case Surface.ROTATION_180:
//                    orientation =
//                            ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
//                    break;
//                case Surface.ROTATION_270:
//                    orientation =
//                            ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
//                    break;
//                default:
//                    orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
//                    break;
//            }
//        }
//
//        return orientation;
//    }
//
//
//    //滑动改变声音大小
//    private void onVolumeSlide(float percent) {
//        if (volume == -1) {
//            volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//            if (volume < 0)
//                volume = 0;
//        }
//        hideView(true);
//
//        int index = (int) (percent * mMaxVolume) + volume;
//        if (index > mMaxVolume)
//            index = mMaxVolume;
//        else if (index < 0)
//            index = 0;
//
//        // 变更声音
//        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, index, 0);
//
//        // 变更进度条
////        int i = (int) (index * 1.0 / mMaxVolume * 100);
////        String s = i + "%";
////        if (i == 0) {
////            s = "off";
////        }
//        // 显示 光度,声音等配置
////        $.id(R.id.app_video_volume_icon).image(i==0?R.drawable.ic_volume_off_white_36dp:R.drawable.ic_volume_up_white_36dp);
////        $.id(R.id.app_video_brightness_box).gone();
////        $.id(R.id.app_video_volume_box).visible();
////        $.id(R.id.app_video_volume_box).visible();
////        $.id(R.id.app_video_volume).text(s).visible();
//    }
//
//    private void onProgressSlide(float percent) {
//        long position = videoView.getCurrentPosition();
//        long duration = videoView.getDuration();
//        long deltaMax = Math.min(100 * 1000, duration - position);
//        long delta = (long) (deltaMax * percent);
//
//
//        newPosition = delta + position;
//        if (newPosition > duration) {
//            newPosition = duration;
//        } else if (newPosition <= 0) {
//            newPosition = 0;
//            delta = -position;
//        }
//        int showDelta = (int) delta / 1000;
//        if (showDelta != 0) {
//            fastForwardLayout.setVisibility(View.VISIBLE);
//            String text = showDelta > 0 ? ("+" + showDelta) : "" + showDelta;
//            fastForwardTV.setText(text + "s");
//            fTargetTV.setText(generateTime(newPosition) + "/");
//            fallTV.setText(generateTime(duration));
//        }
//    }
//
//    //滑动改变亮度
//    private void onBrightnessSlide(float percent) {
//        if (brightness < 0) {
//            brightness = activity.getWindow().getAttributes().screenBrightness;
//            if (brightness <= 0.00f) {
//                brightness = 0.50f;
//            } else if (brightness < 0.01f) {
//                brightness = 0.01f;
//            }
//        }
//        Log.d(this.getClass().getSimpleName(), "brightness:" + brightness + ",percent:" + percent);
//        brightnessLayout.setVisibility(View.VISIBLE);
//        WindowManager.LayoutParams lpa = activity.getWindow().getAttributes();
//        lpa.screenBrightness = brightness + percent;
//        if (lpa.screenBrightness > 1.0f) {
//            lpa.screenBrightness = 1.0f;
//        } else if (lpa.screenBrightness < 0.01f) {
//            lpa.screenBrightness = 0.01f;
//        }
//        brightnessTV.setText(((int) (lpa.screenBrightness * 100)) + "%");
//        activity.getWindow().setAttributes(lpa);
//
//    }
//
//    /**设置播放进度条*/
//    private long setProgress() {
//        if (isDragging) {
//            return 0;
//        }
//        long position = videoView.getCurrentPosition();
//        long duration = videoView.getDuration();
//        if (!isLive && seekBar != null) {
//            if (duration > 0) {
//                long pos = 1000L * position / duration;
//                seekBar.setProgress((int) pos);
//            }
//            int percent = videoView.getBufferPercentage();
//            seekBar.setSecondaryProgress(percent * 10);
//        }
//        this.duration = duration;
//        if(isComplete){
//            //播放完成避免计算bug
//            cTimeTV.setText(generateTime(this.duration));
//            eTimeTV.setText(generateTime(this.duration));
//        } else {
//            cTimeTV.setText(generateTime(position));
//            eTimeTV.setText(generateTime(this.duration));
//        }
//        return position;
//    }
//
//    public void hideView(boolean force) {
//        if (isComplete) return;
//        if (force || isShowing) {
//            isShowing = false;
//            showBottomControl(false);
//            topLayout.setVisibility(View.GONE);
////            uiHandler.removeMessages(MESSAGE_SHOW_PROGRESS);
//        }
//    }
//
//
//    //更新按钮
//    private void updateFullScreenIcon() {
//        //全屏和退出全屏
//        if (getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
//            fullBtn.setImageResource(R.drawable.ic_video_fullscreen_small);
//        } else {
//            fullBtn.setImageResource(R.drawable.ic_video_fullscreen);
//        }
//    }
//
//    /**
//     * <pre>
//     *     fitParent:可能会剪裁,保持原视频的大小，显示在中心,当原视频的大小超过view的大小超过部分裁剪处理
//     *     fillParent:可能会剪裁,等比例放大视频，直到填满View为止,超过View的部分作裁剪处理
//     *     wrapContent:将视频的内容完整居中显示，如果视频大于view,则按比例缩视频直到完全显示在view中
//     *     fitXY:不剪裁,非等比例拉伸画面填满整个View
//     *     16:9:不剪裁,非等比例拉伸画面到16:9,并完全显示在View中
//     *     4:3:不剪裁,非等比例拉伸画面到4:3,并完全显示在View中
//     * </pre>
//     *
//     * @param scaleType
//     */
//    private void setScaleType(String scaleType) {
//        //todo 暂时屏蔽
////        if (SCALETYPE_FITPARENT.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_ASPECT_FIT_PARENT);
////        } else if (SCALETYPE_FILLPARENT.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_ASPECT_FILL_PARENT);
////        } else if (SCALETYPE_WRAPCONTENT.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_ASPECT_WRAP_CONTENT);
////        } else if (SCALETYPE_FITXY.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_MATCH_PARENT);
////        } else if (SCALETYPE_16_9.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_16_9_FIT_PARENT);
////        } else if (SCALETYPE_4_3.equals(scaleType)) {
////            videoView.setAspectRatio(IRenderView.AR_4_3_FIT_PARENT);
////        }
//    }
//
//    public void start() {
//        videoView.start();
//    }
//
//    public void pause() {
//        videoView.pause();
//    }
//
//    public void onPause() {
//        pauseTime = System.currentTimeMillis();
//        show(0);//把系统状态栏显示出来
//        if (status == STATUS_PLAYING) {
//            videoView.pause();
//            if (!isLive) {
//                currentPosition = videoView.getCurrentPosition();
//            }
//        }
//    }
//
//    public void onResume() {
//        pauseTime = 0;
//        if (status == STATUS_PLAYING) {
//            if (isLive) {
//                videoView.seekTo(0);
//            } else {
//                if (currentPosition > 0) {
//                    videoView.seekTo(currentPosition);
//                }
//            }
//            videoView.start();
//        }
//    }
//
//    public void onDestroy() {
//        orientationEventListener.disable();
//        uiHandler.removeCallbacksAndMessages(null);
//        videoView.stopPlayback();
//    }
//
//    /**
//     * 监听后退
//     */
//    public boolean onBackPressed() {
//        if (getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
//            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//            return true;
//        }
//        return false;
//    }
//
//    public int dp2px(Context context, float n) {
//        int value = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, n, context.getResources().getDisplayMetrics());
//        return value;
//    }
//
//    private void setViewSize(View view, boolean width, int n, boolean dip) {
//        if (view != null) {
//            ViewGroup.LayoutParams lp = view.getLayoutParams();
//            if (n > 0 && dip) {
//                n = dp2px(activity, n);
//            }
//            if (width) {
//                lp.width = n;
//            } else {
//                lp.height = n;
//            }
//            view.setLayoutParams(lp);
//        }
//    }
//
//    /**
//     * 播放器手势监听
//     */
//    public class PlayerGestureListener extends GestureDetector.SimpleOnGestureListener {
//        private boolean firstTouch;
//        private boolean volumeControl;
//        private boolean toSeek;
//
//        /**
//         * 双击
//         */
//        @Override
//        public boolean onDoubleTap(MotionEvent e) {
////            videoView.toggleAspectRatio();
//            return true;
//        }
//
//        @Override
//        public boolean onDown(MotionEvent e) {
//            firstTouch = true;
//            return super.onDown(e);
//
//        }
//
//        /**
//         * 滑动
//         */
//        @Override
//        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//            float mOldX = e1.getX(), mOldY = e1.getY();
//            float deltaY = mOldY - e2.getY();
//            float deltaX = mOldX - e2.getX();
//            if (firstTouch) {
//                toSeek = Math.abs(distanceX) >= Math.abs(distanceY);
//                volumeControl = mOldX > screenWidthPixels * 0.5f;
//                firstTouch = false;
//            }
//            //todo 暂时屏蔽其他功能
////            if (toSeek) {
////                if (!isLive) {
////                    onProgressSlide(-deltaX / videoView.getWidth());
////                }
////            } else {
////                float percent = deltaY / videoView.getHeight();
////                if (volumeControl) {
////                    onVolumeSlide(percent);
////                } else {
////                    onBrightnessSlide(percent);
////                }
////            }
//
//            return super.onScroll(e1, e2, distanceX, distanceY);
//        }
//
//        @Override
//        public boolean onSingleTapUp(MotionEvent e) {
//            //点击videoView
//            if (isShowing) {
//                hideView(false);
//            } else {
//                show(defaultTimeout);
//            }
//            return true;
//        }
//    }
//
//    /**
//     * is player support this device
//     *
//     * @return
//     */
//    public boolean isLoadLib() {
//        return isLoadLib;
//    }
//
//    /**
//     * 是否正在播放
//     *
//     * @return
//     */
//    public boolean isPlaying() {
//        return videoView != null ? videoView.isPlaying() : false;
//    }
//
//    public void stop() {
//        videoView.stopPlayback();
//    }
//
//    /**
//     * seekTo position
//     *
//     * @param msec millisecond
//     */
//    public LiveneeqPlayer seekTo(int msec, boolean showControlPanle) {
//        videoView.seekTo(msec);
//        if (showControlPanle) {
//            show(defaultTimeout);
//        }
//        return this;
//    }
//
//    public LiveneeqPlayer forward(float percent) {
//        if (isLive || percent > 1 || percent < -1) {
//            return this;
//        }
//        onProgressSlide(percent);
//        showBottomControl(true);
//        uiHandler.sendEmptyMessage(MESSAGE_SHOW_PROGRESS);
//        endGesture();
//        return this;
//    }
//
//    //获取当前播放位置
//    public int getCurrentPosition() {
//        return videoView.getCurrentPosition();
//    }
//
//    //获取长度
//    public int getDuration() {
//        return videoView.getDuration();
//    }
//
//    public LiveneeqPlayer playInFullScreen(boolean fullScreen) {
//        if (fullScreen) {
//            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//            updateFullScreenIcon();
//        }
//        return this;
//    }
//
//    /**
//     * 设置成全屏属性
//     */
//    public void toggleFullScreen() {
//        if (getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
//            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//        } else {
//            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//        }
//        updateFullScreenIcon();
//    }
//
//    /**
//     * set is live (can't seek forward)
//     *
//     * @param isLive
//     * @return
//     */
//    public LiveneeqPlayer setIslive(boolean isLive) {
//        this.isLive = isLive;
//        return this;
//    }
//
//    public LiveneeqPlayer toggleAspectRatio() {
//        if (videoView != null) {
////            videoView.toggleAspectRatio();
//        }
//        return this;
//    }
//
//    /**
//     * 播放和停止状态改变
//     */
//    private void doPauseResume() {
//        if (status == STATUS_COMPLETED) {
//            isComplete = false;
//            videoView.seekTo(0);
//            videoView.start();
//        } else if (videoView.isPlaying()) {
//            statusChange(STATUS_PAUSE);
//            videoView.pause();
//        } else {
//            videoView.start();
//        }
//        updatePausePlay();
//    }
//
//    /**
//     * 更新播放按钮
//     */
//    private void updatePausePlay() {
//        if (videoView.isPlaying()) {
//            playBtn.setImageResource(R.drawable.ic_video_stop);
//        } else {
//            playBtn.setImageResource(R.drawable.ic_video_play);
//        }
//    }
//
//    /**
//     * @param timeout
//     */
//    public void show(int timeout) {
//        if (!isShowing) {
//            isShowing = true;
//            showBottomControl(true);
//            topLayout.setVisibility(View.VISIBLE);
//        }
//        updatePausePlay();
//        uiHandler.sendEmptyMessage(MESSAGE_SHOW_PROGRESS);
//        uiHandler.removeMessages(MESSAGE_FADE_OUT);
//        if (timeout != 0) {
//            uiHandler.sendMessageDelayed(uiHandler.obtainMessage(MESSAGE_FADE_OUT), timeout);
//        }
//    }
//
//    /**消息处理*/
//    static class UIHandler extends Handler {
//        WeakReference<LiveneeqPlayer> viewReference;
//
//        public UIHandler(WeakReference<LiveneeqPlayer> viewReference) {
//            this.viewReference = viewReference;
//        }
//
//        @Override
//        public void handleMessage(Message msg) {
//
//            if(viewReference == null || viewReference.get() == null) return;
//
//            switch (msg.what) {
//                case MESSAGE_FADE_OUT:
//                    viewReference.get().hideView(false);
//                    break;
//                case MESSAGE_HIDE_CENTER_BOX:
//                    viewReference.get().volumeLayout.setVisibility(View.GONE);
//                    viewReference.get().brightnessLayout.setVisibility(View.GONE);
//                    viewReference.get().fastForwardLayout.setVisibility(View.GONE);
//                    break;
//                case MESSAGE_SEEK_NEW_POSITION:
//                    if (!viewReference.get().isLive && viewReference.get().newPosition >= 0) {
//                        viewReference.get().videoView.seekTo((int) viewReference.get().newPosition);
//                        viewReference.get().newPosition = -1;
//                    }
//                    break;
//                case MESSAGE_SHOW_PROGRESS:
//                    viewReference.get().setProgress();
//                    if (!viewReference.get().isDragging && viewReference.get().isShowing) {
//                        msg = obtainMessage(MESSAGE_SHOW_PROGRESS);
//                        sendMessageDelayed(msg, 500);
//                        viewReference.get().updatePausePlay();
//                    }
//                    break;
//                case MESSAGE_ERROR:
//                    //播放出错
//                    viewReference.get().play(viewReference.get().url);
//                    break;
//
//                case MESSAGE_RESTART_PLAY:
//                    viewReference.get().play(viewReference.get().url);
//                    break;
//            }
//        }
//    }
//
//    public interface PlayerListener {
//        void onError(int status, int extra);
//
//        void onComplete();
//
//        void onInfo(int status, int extra);
//    }
}
